-
Notifications
You must be signed in to change notification settings - Fork 5.5k
feat(native): Add iceberg partition transforms #26479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
feat(native): Add iceberg partition transforms #26479
Conversation
Reviewer's GuideThis PR implements support for Iceberg partition transforms by introducing new conversion routines that translate Presto’s IcebergPartitionSpec into Velox’s PartitionSpec and integrating these routines into the table-handle translation path. Sequence diagram for Iceberg partition spec conversion during table handle translationsequenceDiagram
participant PrestoTableHandle
participant IcebergPrestoToVeloxConnector
participant VeloxPartitionSpec
PrestoTableHandle->>IcebergPrestoToVeloxConnector: Provide IcebergPartitionSpec
IcebergPrestoToVeloxConnector->>IcebergPrestoToVeloxConnector: toVeloxIcebergPartitionSpec(spec, typeParser)
IcebergPrestoToVeloxConnector->>VeloxPartitionSpec: Return converted PartitionSpec
IcebergPrestoToVeloxConnector->>PrestoTableHandle: Return VeloxPartitionSpec
Class diagram for IcebergPrestoToVeloxConnector partition transform supportclassDiagram
class IcebergPrestoToVeloxConnector {
+toVeloxIcebergPartitionField(field, typeParser, schema) : IcebergPartitionSpec::Field
+toVeloxIcebergPartitionSpec(spec, typeParser) : IcebergPartitionSpec*
}
class PrestoToVeloxConnector
IcebergPrestoToVeloxConnector --|> PrestoToVeloxConnector
class ProtocolIcebergIcebergPartitionField
class ProtocolIcebergPrestoIcebergPartitionSpec {
fields
schema
specId
}
class VeloxConnectorHiveIcebergIcebergPartitionSpec {
specId
fields
}
class VeloxConnectorHiveIcebergIcebergPartitionSpecField {
name
type
transform
parameter
}
IcebergPrestoToVeloxConnector --> VeloxConnectorHiveIcebergIcebergPartitionSpec
IcebergPrestoToVeloxConnector --> VeloxConnectorHiveIcebergIcebergPartitionSpecField
IcebergPrestoToVeloxConnector --> ProtocolIcebergIcebergPartitionField
IcebergPrestoToVeloxConnector --> ProtocolIcebergPrestoIcebergPartitionSpec
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Suggest revising the release note entry for formatting. Topic should probably be either |
d70f6c7 to
89ece31
Compare
Description
Support Iceberg partition transforms: Identity, bucket, truncate, year, month, day, hour.
Motivation and Context
Impact
Test Plan
Contributor checklist
Release Notes
Please follow release notes guidelines and fill in the release notes below.